// pages/cart/index.js
import {
  cartList,
  editNum,
  editCart,
  removeCart
} from "../../utils/api/api"
Page({
  /**
   * 页面的初始数据
   */
  data: {
    cartData: [],
    total: 0, //总价
  },
  count() { // 计算总价
    let total = 0
    let limit = 0
    if (this.data.cartData) {
      this.data.cartData.forEach(item => {
        limit += item.number
        if (item.selected) {
          total += item.number * item.price
        }
      });
    }
    this.setData({
      total
    })
    if (limit >= 1) {
      wx.setTabBarBadge({
        index: 3,
        text: String(limit),
      })
    }
  },
  changeNumJian(e) { //单条购物车数量减
    let num = e.target.dataset.item.number
    num = num - 1
    editNum({
      token: wx.getStorageSync('token'),
      key: e.target.dataset.item.key,
      number: num
    }).then(res => {
      this.setData({
        cartData: res.data.items
      })
      this.count()
    })
  },
  changeNumJia(e) { //单条购物车数量加
    let num = e.target.dataset.item.number
    num = num + 1
    editNum({
      token: wx.getStorageSync('token'),
      key: e.target.dataset.item.key,
      number: num
    }).then(res => {
      this.setData({
        cartData: res.data.items
      })
      this.count()
    })
  },
  onChange(e) { //修改选中状态 
    editCart({
      token: wx.getStorageSync('token'),
      key: e.target.dataset.item.key,
      selected: e.detail
    }).then(res => {
      this.setData({
        cartData: res.data.items
      })
      this.count()
    })
  },
  del(e) { //删除
    removeCart({
      key: e.target.dataset.key,
      token: wx.getStorageSync('token')
    }).then(res => {
      if (res.code == 0) {
        this.setData({
          cartData: res.data.items
        })
      } else {
        this.setData({
          cartData: null
        })
      }
      console.log(res);
      this.count()
    })
  },
  toCategory() {
    wx.switchTab({
      url: '/pages/category/index',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    cartList({
      token: wx.getStorageSync('token')
    }).then(res => {
      if (res.data) {
        this.setData({
          cartData: res.data.items
        })
      } else {
        this.setData({
          cartData: null
        })
      }
      this.count()
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})